package com.yang.SpringTest.annotation.lookupLearn;

import org.springframework.beans.factory.annotation.Lookup;
import org.springframework.stereotype.Component;

/**
 * <p>【spring】@Lookup注解学习</p>
 * 定义一个单例 Bean，并在其中使用 @Lookup 注解
 *
 * @author By: chengxuyuanshitang <br>
 * @Package: com.yang.SpringTest.annotation.lookupLearn <br>
 * @CreateTime: 2024-11-20 13:59 <br>
 */
@Component
public class DemoSingletonBean {

    /**
     * 方法会被 Spring代理，每次调用时返回一个新的 DemoPrototypeBean 实例
     *
     * @return DemoPrototypeBean
     */
    @Lookup
    public DemoPrototypeBean getDemoPrototypeBean() {
        // 返回值会被忽略
        return null;
    }

    public void useDemoPrototypeBean() {
        DemoPrototypeBean prototypeBean = getDemoPrototypeBean();
        prototypeBean.doSomething();
    }
}